#include <QGraphicsDropShadowEffect>
#include <QString>
#include <QLabel>

// 获得一个阴影实例
QGraphicsDropShadowEffect *GetShadow(int size)
{
    QGraphicsDropShadowEffect *shadowEffect = new QGraphicsDropShadowEffect;
    shadowEffect->setBlurRadius(size);            // 设置模糊半径
    shadowEffect->setXOffset(0);                  // 设置阴影的 X 偏移
    shadowEffect->setYOffset(0);                  // 设置阴影的 Y 偏移
    shadowEffect->setColor(QColor(0, 0, 0, 120)); // 设置阴影颜色
    return shadowEffect;
}

// 获得一个缩放按钮的默认格式
QString ZoomButtonQss(const std::string &color, int radius)
{
    return QString(R"(
        QPushButton {
            background-color: rgba(0, 0, 0, 0.01); /* 普通情况下无色 */
            border: none; /* 无边框 */
            border-radius: %2px; /* 圆角 */
            padding: 2px; 
        }
        QPushButton:hover {
            background-color: %1; /* 鼠标悬浮 */
            border-radius: %2px; /* 圆角 */
            padding: 2px; 
        }
        QPushButton:pressed {
            background-color: %1; /* 鼠标点击 */
            border-radius: %2px; /* 圆角 */
            padding: 2px; 
        }
    )")
        .arg(QString::fromStdString(color), QString::number(radius));
}

// 获得系统按钮格式
QString WindowsButtonQss(const std::string &color)
{
    return QString(R"(
        QPushButton{
            background:rgba(0,0,0,0.01);
            color:%1;
        }
        QPushButton:hover{
            background:rgba(0,0,0,0);
            color:rgb(244,71,53);
        }
    )")
        .arg(QString::fromStdString(color));
}

// 设置一个显示文字的qlable的字体，格式
void SetTextQLable(QLabel &label, std::string &font, int size)
{
    label.setFont(QFont(QString::fromStdString(font), size)); // 设置字体
    label.setStyleSheet("QLabel { background: transparent; border: none; }");
}